我想知道JS承诺是否是es5的一部分?如果是这样,为什么它有时在旧版浏览器中不起作用,我们必须为它添加一个polyfill.另外,在这种情况下应该添加哪种polyfill,es5 one或es6?我对此有点困惑.
我正在向后端休息api发出ajax调用,api正在恢复正常.如果我在console.log()中获取成功数据和错误数据,它会在控制台上显示"资源登录",200 ok,但是当我在该auth/login路由的网络选项卡响应中查看时,它显示"无法加载响应数据".而这有时只会发生,而不是总是发生.为什么?这是我的ajax调用的片段.
ajax
.post('auth/login', {
data: {
oauth_provider: 'google',
oauth_token: (isToken ? authResult : authResult.access_token)
},
cache: false
})
.done(function(data) {
console.log(data); // Resource Logged in
})
.error(function(err){
console.log(err);
})
Run Code Online (Sandbox Code Playgroud)
这是我的ajax.js的内容
define(
[
'jquery',
'util',
],
function ($, util) {
var ajax = {
request: function (type, url, options) {
if (url.indexOf('http') === -1) {
url = util.url(url);
}
if (options === undefined) {
options = {};
}
options.type = type
options.url = url;
return $.ajax(options);
},
get: function (url, …Run Code Online (Sandbox Code Playgroud) 我是ts的新手,但是我已经了解了java中泛型的概念。查询的是我具有三个功能:searchTrack,searchAlbum,searchArtist
searchTrack(query: string): Observable<Track[]> {
return this.search(query, 'track');
}
searchArtist(query: string): Observable<Artist[]> {
return this.search(query, 'artist');
}
searchAlbum(query: string): Observable<Album[]> {
return this.search(query, 'album');
}
Run Code Online (Sandbox Code Playgroud)
我想要此类中的通用功能“搜索”,该功能接受查询和实体类型并返回特定实体类型的Observable集合。我被困在这里。我如何使用泛型来指定函数的泛型返回类型。
search(query: string, type: string): Observable<Array<T>> {
return this.query(`/search`, [
`q=${query}`,
`type=${type}`
]);
}
Run Code Online (Sandbox Code Playgroud)
有什么办法可以实现?
javascript ×2
ajax ×1
es6-promise ×1
function ×1
generics ×1
jquery ×1
promise ×1
typescript ×1