我正在使用.then编写承诺的代码。现在,我决定改用await/async来编写它。我在promise中调用了一个名为add_Lessons的函数,然后在该函数的.then中调用另一个function。这是我使用.then的代码。
function create_section(sections,course_ID,i) {
return new Promise(
(resolve) => {
var s_duration = 0;
var sname = sections[i].name;
var s_obj = {
//some object;
}
var section_id;
DB.section.create(s_obj,function (err, data_s)
{
if (err) return next(err);
section_id = data_s._id;
var lesson = sections[i].lessons;
add_lessons(lesson,section_id,i)
.then(function(arr){
resolve(arr);
})
});
}
);
};
下面是使用await/async的代码示例。
function create_section(sections,course_ID,i) {
return new Promise(
async function resolve() {
var s_duration = 0;
var sname = sections[i].name;
var s_obj = {
//some obj
}
var section_id;
DB.section.create(s_obj,function (err, data_s)
{
if (err) return next(err);
section_id = data_s._id;
var lesson = sections[i].lessons;
var arr = await add_lessons(lesson,section_id,i)
resolve(arr);
});
}
);
};
使用await/async的代码显示出add_lessons是意外标识符的错误。那么告诉我如何在承诺内定义异步函数?
Promise
构造函数反模式! - Bergi