此问题类似于“How to wrap object in a Promise?”,但我需要澄清为什么我在返回值的类型上存在差异。
基本上,我想从本地缓存中获取数据对,如果没有,从服务器获取数据,将其存储到本地缓存。一旦存储了这对数据,然后对返回的参数执行其他操作(Part 1:1234567890s· s·Part 2:abcdefghijs· s·$
) - 它们必须是字符串参数,但如果从缓存中命中,则它们是字符串,如果来自ajax,则它们是对象。
我不明白有什么不同。
我的代码就像:
doSmtg( stringParameter)
答案 0 :(得分:0)
jQuery的.done()
和.fail()
方法与.then()
(以及jQ 3 +中的.catch()
具有相同的权力。)
更具体地说,使用.done()
和.fail()
,返回输入承诺,而不是新承诺,因此这些方法不具有过滤"功率; .done()或.fail()回调返回的任何值或承诺对promise链中的下游没有影响。回调仅适用于副作用。
所以,在promiseContent()
中,而不是.done(successFn).fail(errorFn)
:
.then(successFn).then(null, errorFn)
.then(successFn).catch(errorFn)
。