Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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 FB异步调用已触发多次,但仅执行一次_Javascript_Facebook_Facebook Graph Api_Ionic Framework_Promise - Fatal编程技术网

Javascript FB异步调用已触发多次,但仅执行一次

Javascript FB异步调用已触发多次,但仅执行一次,javascript,facebook,facebook-graph-api,ionic-framework,promise,Javascript,Facebook,Facebook Graph Api,Ionic Framework,Promise,我在使用Ionic v2 Facebook插件时遇到问题,该插件使用.api()。我触发了几次,第一次得到结果,但另一次似乎被忽略了: Facebook.api("/"+ validAlbumId_A +"/picture?access_token="+validToken+'&redirect=false', []).then( (response) => { console.log(response.data.url); }, // <-- this gets

我在使用Ionic v2 Facebook插件时遇到问题,该插件使用
.api()
。我触发了几次,第一次得到结果,但另一次似乎被忽略了:

Facebook.api("/"+ validAlbumId_A +"/picture?access_token="+validToken+'&redirect=false', []).then(
    (response) => {  console.log(response.data.url);  }, // <-- this gets logged
    (error)    => {  console.log("oh noh"); }
);
Facebook.api("/"+ validAlbumId_B +"/picture?access_token="+validToken+'&redirect=false', []).then(
    (response) => {  console.log(response.data.url);  },
    (error)    => {  console.log("oh noh"); }
);
Facebook.api("/"+ validAlbumId_C +"/picture?access_token="+validToken+'&redirect=false', []).then(
    (response) => {  console.log(response.data.url);  },
    (error)    => {  console.log("oh noh"); }
);
Facebook.api(“/”+validAlbumId_A+”/picture?访问令牌=“+validToken+”&redirect=false',[])。然后(
(response)=>{console.log(response.data.url);},//{console.log(“oh-noh”);}
);
Facebook.api(“/”+validAlbumId_B+”/picture?访问令牌=“+validToken+”&redirect=false',[])。然后(
(response)=>{console.log(response.data.url);},
(错误)=>{console.log(“oh-noh”);}
);
Facebook.api(“/”+validAlbumId_C+”/picture?access_token=“+validToken+”&redirect=false',[])。然后(
(response)=>{console.log(response.data.url);},
(错误)=>{console.log(“oh-noh”);}
);
结果:一个响应url(第一个)

但是,如果我更改代码并按顺序进行FB调用(等待前一个调用完成),我将得到所有结果


有人能解释为什么我不能并行运行它们吗?我为什么要等?

如果你只打一次电话,它怎么能打8次?你的代码中没有循环。你是对的,我没有循环。我递归地调用它们,请查看代码块第4行的
if
:)啊,对不起,没有引起足够的注意!我无法回答为什么只调用一次回调,但让
getCoverImages()
返回一个承诺,将其放入数组中,然后等待它们全部返回,这难道不是更有意义吗?是的,会,但核心问题仍然存在。我一次只能运行一个
facebook.api()
,所以多个承诺(就像我的第一个代码一样)不起作用。“someAlbumId”是从哪里来的?初始索引和最大值是多少?老实说,现在这个代码没有多大意义。请添加更多信息。