JS/ES 离线并存储一个 Promise 以备后用

ZEE*_*ZEE -1 javascript promise ecmascript-next

我怎样才能脱机这个“示例”承诺---即将承诺归因于一个变量以供以后传递/使用---

// 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" ) 
    )
Run Code Online (Sandbox Code Playgroud)

我想将承诺归因于一个变量,就像

var p = new Promise( ... )
Run Code Online (Sandbox Code Playgroud)

但是承诺是在创建时执行的......

?我怎样才能推迟这个执行,以便以后调用承诺的方法......例如: p.exec()

ede*_*ine 5

承诺立即执行。但是您可以将它们包装在一个函数中,该函数在调用时会创建/执行 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;
Run Code Online (Sandbox Code Playgroud)