我有一个异步方法,例如async methodA()
,
我希望methodB()
不要异步,而是要调用methodA()
。
如何让methodA()
完成并将数据发送到methodB()
?
答案 0 :(得分:0)
您可以使用async/await
。
让我们采用异步的方法A.使用async
关键字使您的方法成为异步。
async function A(){
//do something
}
现在函数A总是返回promise
如果它没有返回JavaScript将它包装成已解析的promise
让你的方法B等到该承诺结算并返回结果
let value = await promise;
现在这仅适用于async
函数。您可以在方法B中使用value
。
使用此方法,您可以在方法B中使用方法A的输出。您还可以将输出分配给全局变量并在以后使用
async function A() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("output for method B"), 1000)
});
let result = await promise; // wait till the promise resolves (*)
function B(){
// do something with result
console.log(result)
}
B(result)
}
A();
答案 1 :(得分:0)
嗯,如果没有超时,这是不可能的,我不想要其中一个,所以我让整个事情变得异步......