0

非同期関数を使用して Person.name を設定しました (ajax 呼び出しを考えてください)。残念ながら、コールバックに配置することなく、オブジェクトから他の関数​​を使用したいと思っています。

オブジェクトの非同期に設定されたプロパティに依存する関数を使用するにはどうすればよいですか?

実行するコード:

var user = new Person();
user.setName(); // This is async.
var is_jennifer = user.isItJennifer(); // Oh no! the user's name may not be defined yet!
...
...
var is_tom = user.isItTom(); // Much later in the code I need the async property again. I don't want to cram all of this into a callback whenever I setName.

setName()非同期のメソッドを持つオブジェクト。

function Person() {
  // Properties
  this.name = null;

  this.setName = function() {
    this.name = NameModelThing.getName(); // Oh no! getName returns a result asynchronously.
  }

  this.isItJennifer = function() {
    return (this.name == 'Jennifer') ? true : false;
  }

  this.isItTom = function() {
    return (this.name == 'Tom') ? true : false;
  }
}
4

1 に答える 1