2017-04-25 60 views
0

好了,所以我将照片添加到一个Observable.add,但我需要运行一个函数/请求获取UserNameFeed信息,问题是,我可以在做到这一点从.add运行函数内部`.add`

var Photo = Observable(); 
Photo.add({ 
    photoDateFeed: element.theDate, 
    imgurl: "https://res.cloudinary.com/" + element.photos.value, 
    UserFEEDid: element.userid, 
    UserNameFeed: (run a javascript function???) 
}); 

我不知道这是可能的

+0

取决于函数的功能是否正确。调用这个函数就像'foo()'一样简单。 –

+0

这也应该被标记为“[rxjs]”或者是可观察对象 - 即将出现的语言本地事物吗? (严重的问题,我不知道。) – apsillers

回答

2

您可以在接下来的步骤做:

  1. 实现的功能。
  2. 给它打电话。

最终代码会看起来像

function yourFunction(){ 
    var result = 'Name';// Do what you want 
    return result; 
} 
var Photo = Observable(); 
Photo.add({ 
    photoDateFeed: element.theDate, 
    imgurl: "https://res.cloudinary.com/" + element.photos.value, 
    UserFEEDid: element.userid, 
    UserNameFeed: yourFunction() 
}); 

如果你的函数需要接受参数,只需添加在参数列表

function yourFunction(element){ 
    var result = 'Name ' + element.userid;// Do what you want 
    return result; 
} 
var Photo = Observable(); 
Photo.add({ 
    photoDateFeed: element.theDate, 
    imgurl: "https://res.cloudinary.com/" + element.photos.value, 
    UserFEEDid: element.userid, 
    UserNameFeed: yourFunction(element) 
}); 

如果你需要做异步操作,你必须将其重写异步样式:

function yourFunction(element, callback){ 
    // get name in async 
    $.ajax({ 
     ... 
     success: function(result) { 
      // Do what you want 
      callback(result) 
     } 
    }); 
} 
var Photo = Observable(); 
yourFunction(element, function(result){ 
    Photo.add({ 
     photoDateFeed: element.theDate, 
     imgurl: "https://res.cloudinary.com/" + element.photos.value, 
     UserFEEDid: element.userid, 
     UserNameFeed: result 
    }); 
});