JS/ES离线并存储一个Promise以备后用
我怎样才能脱机这个“示例”承诺---即将承诺归因于一个变量以供以后传递/使用---
// this example promise works OK...
// just test with x=0 and x<>0
var x=0;
( new Promise( ( a, b ) =>
{ if ( x==1 ) a(); else b(); } ) )
.then( ()=>console.log( "RS=>OK" ), ()=>console.log( "RJ=>KO" )
)
我想将承诺归因于一个变量,就像
var p = new Promise( ... )
但是承诺是在创建时执行的......
?我怎样才能推迟这个执行,以便以后调用承诺的方法......例如: p.exec()
回答
承诺立即执行。但是您可以将它们包装在一个函数中,该函数在调用时会创建/执行 Promise。例如:
var p = () =>
new Promise( ( a, b ) =>
{ if ( x==1 ) a(); else b(); } ) )
.then( ()=>console.log( "RS=>OK" ), ()=>console.log( "RJ=>KO" );
// when ready to start
var actualPromise = p();
await actualPromise;