Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在这种情况下,如何维护API这样的承诺?_Javascript_Promise_Q - Fatal编程技术网

Javascript 在这种情况下,如何维护API这样的承诺?

Javascript 在这种情况下,如何维护API这样的承诺?,javascript,promise,q,Javascript,Promise,Q,在“无效”的情况下,我如何习惯性地返回已解决的承诺 请注意,Q可能有一些快捷方式来实现此… 看看本机Promise对象的静态方法和方法 角度$q 使用$q.when从某个非承诺对象返回已解析的承诺: function foo(options) { if(!isValid(options)) { return Promise.resolve(); } return promisifiedThirdPartyApi(options); } Q承诺 使用Q.resolve()返

在“无效”的情况下,我如何习惯性地返回已解决的承诺

请注意,Q可能有一些快捷方式来实现此…

看看本机Promise对象的静态方法和方法

角度$q 使用
$q.when
从某个非承诺对象返回已解析的承诺:

function foo(options) {
  if(!isValid(options)) {
    return Promise.resolve();
  }

  return promisifiedThirdPartyApi(options);
}
Q承诺 使用
Q.resolve()
返回已解析的承诺

function foo(options) {
  if(!isValid(options)) {
    return $q.when([]);
  }

  return promisifiedThirdPartyApi(options);
}

返回Q.defer().resolve().promise()
可能重复或否,即使使用Q,您也可以返回Q.resolve()。无需创建延迟。避免
function foo(options) {
  if(!isValid(options)) {
    return Promise.resolve();
  }

  return promisifiedThirdPartyApi(options);
}
function foo(options) {
  if(!isValid(options)) {
    return $q.when([]);
  }

  return promisifiedThirdPartyApi(options);
}
function foo(options) {
  if(!isValid(options)) {
    return Q.resolve();
  }

  return promisifiedThirdPartyApi(options);
}