我正在尝试学习async / await . 我想等待异步函数中的return语句 . 我必须多次调用它,所以我在里面使用了setTiemout .
编辑:
//Processing gallery
async function somefunction(){
async function getPictureR(){
/* some code */
if($('.actions > .prev', html)[0]){
older = $('.actions > .prev', html)[0].attribs.href;
} else {
console.log('return');
return;
}
/* some code */
return new Promise((resolve, reject) => {
setTimeout(getPictureR, 1 * 1000/2);
})
}
await getPictureR();
console.log('getPictureR done');
}
我已经尝试了 await getPictureR()
但它在第一次调用函数后立即触发 . 我怎么能等待那次回归?
1 回答
你永远不应该从异步(非承诺)回调或inside the new Promise constructor调用一个promise-returns函数,比如
getPictureR
. 你也永远不会解决new Promise
. 你在找但是因为你正在使用
async
/await
,所以无论如何都不需要递归函数和then
链接 . 您还可以在单独的帮助函数中分解setTimeout
-in-promise包装: